package com.plian.system.entity.fr.bank;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.plian.Tools.DateUtil;
import com.plian.system.mybatis.base.BaseEntity;
import lombok.*;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 银行账户信息表
 *
 * @author gangan
 * @since 2020-07-17
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("fr_bank_account_info")
@EqualsAndHashCode(callSuper = false)
public class BankAccountInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 企业ID
     */
    private String orgId;

    /**
     * 企业名称
     */
    private String orgName;

    /**
     * 所属集团ID
     */
    private String topGroupId;

    /**
     * 所属集团名称
     */
    private String topGroupName;

    /**
     * 参考币种值集 014
     */
    private String currentCode;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 银行账号名称
     */
    private String bankAccountName;

    /**
     * 银行名称
     */
    private String bankName;

    /**
     * 对应 银行编码
     */
    private String bankCode;

    /**
     * 开户银行名称
     */
    private String openBankName;

    /**
     * 账户存款类型（1基本户、2一般户、5临时户、6专用户）
     */
    private Integer accountType;

    /**
     * 账户存款类型（1活期，2定期，3保证金，4协定，5通知、6借款、7理财、8结构性存款）
     */
    private Integer depositType;

    /**
     * 账户用途：结算、大额资金存放、融资、专用（多选），
     * 结算为8、大额资金存放为4、融资为2、专用为1。传的参数为4个数和。
     */
    private Integer accountUse;

    /**
     * 开户日期
     */
    @JsonFormat(pattern = DateUtil.PATTERN_DATE)
    private Date openDate;

    /**
     * 账户状态 1正常、2保留、3拟撤销、4注销
     */
    private Integer accountStatus;

    /**
     * 销户时间
     */
    @JsonFormat(pattern = DateUtil.PATTERN_DATE)
    private Date closeDate;

    /**
     * 活期的余额
     */
    private BigDecimal balance;

    /**
     * 利率
     */
    private BigDecimal rate;

    private String note;


    /**
     * 表单类型
     */
    private String formType;

    /**
     * 利率类型 1基准利率、2无限额协议利率、3有限额协议利率
     */
    private Integer rateType;

    /**
     * 无限协议利率
     */
    private BigDecimal infiniteAgreementRate;

    /**
     * 有限协议金额
     */
    private BigDecimal limitedAgreementAmount;

    /**
     * 有限协议 利率
     */
    private BigDecimal limitedAgreementRate;

    /**
     * 新增类型 1代表推送过来的数据   null代表页面新增
     */
    private String addType;
}
